草庐IT

c++ - std::iterator、指针和 VC++ 警告 C4996

全部标签

c++ - UAC 打开时如何在 VC++ 6.0 中创建文件?

如何在UAC打开时使用C++创建文件,但不以管理员身份运行?当Vista的UAC打开时,我试图在以下路径中创建一个文本文件:VC++6.0中的“C:\Programdata\Desktop”。但是,Createfile(...)因“权限被拒绝”而失败。当我以“以管理员身份运行”运行示例应用程序时,它可以正常工作。但是我的示例应用程序不应“以管理员身份运行”。当UAC打开时,是否有任何API可以授予上述路径的权限?示例代码:常数nSize=100;CStdioFile文件;CFileExceptionobFileExp;CStringcsFilePath(_T("C:\ProgramDa

c++ - std::map::find(char*) 在 Debug模式下无法在 64 位机器上运行

我面临一个有趣的情况,想与大家分享。当然,如果有人能提供帮助,我将不胜感激!#include"stdafx.h"#include#defineDEF_NAME1"NAME1"#defineDEF_NAME2"NAME2"#defineDEF_NAME3"NAME3"#defineDEF_NAME4"NAME4"structTInfo{constchar*TName;constchar*TArray1[100];constchar*TArray2[100];};typedefstd::mapTInfoMap;typedefstd::pairTInfoPair;staticTInfoMap

c++ - 如何销毁由 std::thread 显式创建的线程?

我希望两个线程最初都在无限循环中运行,但过了一段时间我想杀死第一个线程而不等待它完成,第二个线程应该正常运行。我该如何实现?当我运行下面的代码时,出现调试错误!voidf1(inti){while(1){printf("ExecutngThread%d:%d\n",i,j);Sleep(10);}}intmain(){std::threadt1(f1,1);std::threadt2(f1,2);Sleep(100);t1.~thread();while(1){Sleep(10);}return0;} 最佳答案 程序按照设定的控制流

c++ - VC++ : How to prevent esc from closing a dialog box (not mfc)

如何防止esc关闭对话框?我搜索了这个主题,但我只找到了MFC(您可以覆盖MFC中的PreTranslateMessage函数)。但我的程序是用WindowsAPI编写的,不是MFC。我试图在Dialog过程中捕获所有键盘消息,但它们都不起作用。我也尝试在对话框中使用子类化,但它也不起作用。我该怎么做?谢谢。 最佳答案 处理WM_COMMAND并检查IDCANCEL。然后不要将控件传递给默认窗口过程。 关于c++-VC++:Howtopreventescfromclosingadialo

c++ - 为什么 std::ofstream 添加额外的#13(换行符)字符?

我正在使用一个基本的std::ofstream对象,创建如下:output_stream=std::ofstream(output_file.c_str());这会创建一个文件,其中包含一些信息。让我展示这样一条消息的示例:(Watch窗口摘录)full_Message"Errorwhileprocessingmessage:\r\n\tForecastRequest:"这一切都可以,但是在启动以下命令后,出现了问题:output_stream为了找出问题所在,让我们看一下文件的十六进制转储:(这是文件的十六进制显示,如Notepad++中所示。为清楚起见,我截取了屏幕截图。)如您所见

c++ - 为什么 std::remove for file 总是返回 -1?

我正在尝试删除一个文件(如果存在)。所以首先我测试文件是否存在,如果存在我使用std::remove删除它。.test.json中包含一些json相关的txt。我还有#include包括在内。std::stringfile_to_remove="test.json";std::ifstreamf(file_to_remove.c_str());if(f.good()){intval=std::remove(file_to_remove.c_str());std::cout我原以为retval是0但我得到-1我当前的输出是:Removingfile:test.json:retval:-1

c++ - Qt 和 VC++ 6.0 集成开发环境?

首先我想知道我是否应该同时使用Qt和Windows。如果是这样,我应该使用VC++6.0IDE还是其他? 最佳答案 我认为此时任何人都不应该使用VC++6.0来做任何事情。如果您担心成本,最好只购买2008年的快速版本。 关于c++-Qt和VC++6.0集成开发环境?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/498169/

c++ - 类面向对象错误中的常量指针

我在下面有一个无法编译的简单示例。我收到以下关于const的警告错误信息:错误C2662:“Cfoo::GetNum”:无法将“this”指针从“constCfoo”转换为“Cfoo&”转换丢失限定符classCfoo{public:boolRunMe(constCfoo*bar){inti=bar->GetNum();}intGetNum(){return7;}};int_tmain(intargc,_TCHAR*argv[]){Cfooa;Cfoob;b.RunMe(&a);return0;}起初我认为这与GetNum不返回常量值有关。改变似乎没有帮助。我做错了什么?建议、提示、示

windows - 代码签名的应用程序生成警告消息

充分了解SHA1的贬值并获得SHA256证书(由Comodo颁发),我已将其安装到我的系统并用于对项目可执行文件进行代码签名(在这种情况下,项目可执行文件是INNO已编译的安装文件),我继续收到用户关于看到此警告消息的投诉:这是我用于代码签名的命令(我已将SignTool.exe的路径添加到系统Path变量中,因此在调用它时我没有完全限定它;此外,该命令位于.bat文件):SignTool.exesign/v/a/fdsha256/du"http://www.foo.bar"%1我的第一个猜测是我没有正确使用SignTool签名命令。我知道证书已安装,因为我在查看Certmgr.msc

windows - 在内核空间使用 VC intrinsic

我的问题是当头文件包含在SDK中(从VC10安装)并且我用来编译驱动程序的WDK不了解时,如何在内核空间(在Windows上)使用内部函数这个文件。当我#include一切正常,但是当我开始编译时,我得到了errorC1083:Cannotopenincludefile:'intrin.h':Nosuchfileordirectory我尝试将适当的文件复制到WDK目录,但没有成功。我知道我可以开始编写内联汇编,但老实说我想避免这样做,因为有内在支持,我只是不知道如何访问它。 最佳答案 WDK目录中缺少一些较新的header。只需将声